package com.chao.service;

import com.chao.dataObject.ProductInfo;
import com.chao.dto.CarDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * 商品
 */
public interface ProductInfoService {

    /**
     * 通过 productId 查询商品
     * @param productId
     * @return
     */
    ProductInfo findByProductId(String productId);

    /**
     * 通过 productStatus 查询商品
     * @param productStatus
     * @return
     */
    List<ProductInfo> findByProductStatus(Integer productStatus);

    /**
     * 查询所有在架物品
     * @return
     */
    List<ProductInfo> findUpAll();

    /**
     * 分页查询所有商品
     * @param pageable
     * @return
     */
    Page<ProductInfo> findAll(Pageable pageable);

    /**
     * 新增商品
     * @param productInfo
     * @return
     */
    ProductInfo save(ProductInfo productInfo);

    // 加库存
    void increaseStock(List<CarDTO> carDTOList);

    // 减库存
    void decreaseStock(List<CarDTO> carDTOList);
}
